In modern processors, access to memory and intra- or inter-memory transfers are relatively frequent and may affect, in particular, the overall performance of the system and, more particularly, when the access times to the memories lengthen.
In order to solve these problems, transfer automatons are used to offload the main processor, which may thus continue to perform other tasks in parallel.
This paralleling of the transfers to memory may lead to an overflow of the system onto another process, as will be described in greater detail below.
Thus, a first process may initiate a transfer within its temporal domain, but the transfer may continue beyond this domain and interfere with a second process.
In robustly partitioned systems, this type of interference leading to non-determinism is prohibited.
It is thus necessary to perfectly master DMA transfers in order to avoid any temporal interference between the processes.
It is known that in current systems, temporal interferences of this nature between processes are resolved or circumvented by means of various management mechanisms.
Thus solutions to these problems are known, such as dividing transfers into small batches of short duration, or by increasing the margins associated with each process in order to absorb the potential overflows, or even by grouping the transfers at the beginning of partition.
But all of these bypass techniques are not trouble-free or without effect.
In the case of batching, each transfer incurs a loading penalty of the DMA for its initialization.
Batching therefore amounts to increasing the number of transfers and thus the loading penalties.
If the batching is too detailed, DMA loading becomes more important than the transfers, which is counterproductive.
If the batching is insufficient, the determinism of the transfer within the affected temporal envelope is no longer controlled.
If the margins are increased, this reduces the useful load allocated to the process, and therefore the processor is not fully exploited.
Finally, the grouping of transfers at the beginning of the partition results in severe constraints on the application program and is, therefore, hardly applicable in practice.